package io.github.frailty9.crserver.dso.service;

import io.github.frailty9.crserver.model.ResourceInstance

/**
 * ResourceInstanceService
 */
interface ResourceInstanceService {

    /**
     * 生成指定资源 N 天内的实例
     * @param rid 资源 ID
     * @param days 实例生成天数，缺省为7天
     */
    fun generateInstancesForResource(rid: Long, days: Long = 7)

    /**
     * 获取指定资源的所有实例
     * @param rid 资源 ID
     * @return 资源实例列表
     */
    fun getResourceInstances(rid: Long): List<ResourceInstance>

    /**
     * 获取绑定的资源id
     * @param resourceInstanceId 实例id
     * @return 资源id
     */
    fun getResourceId(resourceInstanceId: Long): Long

    /**
     * 获取指定实例信息
     * @param id 实例id
     * @return 实例信息
     */
    fun getById(id: Long): ResourceInstance?
}
